package com.JingYan.elasticSearch.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.DateFormat;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * 文档的主内容
 * @TableName pdoc_dw_applicationdata
 */
@TableName(value ="plmportal.pdoc_dw_applicationdata")
@Document(indexName = "file_applicationdata",createIndex = true)
@Data
//@Entity
public class PdocDwApplicationdata implements Serializable {

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Id
    @javax.persistence.Id
    @Field(type = FieldType.Keyword)
    private Long id;

    /**
     * 文档主内容的名字
     */
    @TableField(value = "file_name")
    @Field(analyzer="ik_max_word",type = FieldType.Text)
    private String fileName;

    /**
     * 文档主内容的大小
     */
    @TableField(value = "file_size")
    private Long fileSize;

    /**
     * 文档版本
     */
    @TableField(value = "file_version")
    private String fileVersion;

    /**
     * 文档类型 (    primary : 主文档    secondary : 附件 )
     */
    @TableField(value = "role")
    @Field(type = FieldType.Keyword)
    private String role;

    /**
     * 有效标识
     */
    @TableField(value = "stale")
    private Integer stale;

    /**
     * plm数据库创建时间
     */
    @TableField(value = "plm_createstampa2")
    @Field(type = FieldType.Date,format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime plmCreatestampa2;

    /**
     * plm数据库修改时间
     */
    @TableField(value = "plm_modifystampa2")
    @Field(type = FieldType.Date,format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime plmModifystampa2;

    /**
     * 文档主记录关联关系字段
     */
    @TableField(value = "ida2a2")
    @Field(type = FieldType.Keyword)
    private Long ida2a2;

    /**
     * 文档更新版本次数
     */
    @TableField(value = "update_count2")
    private Integer updateCount2;

    /**
     * 文档更新时间
     */
    @TableField(value = "updatestampa2")
    @Field(type = FieldType.Date,format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatestampa2;

    /**
     * 修改人id
     */
    @TableField(value = "full_id")
    @Field(type = FieldType.Keyword)
    private Long fullId;

    /**
     * 修改人的名字
     */
    @TableField(value = "full_name")
    private String fullName;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableField(value = "del_flag")
    private String delFlag;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    /**
     * 版本号-当前时间戳
     */
    @TableField(value = "d_version")
    @Field(type = FieldType.Date,format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime dVersion;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

}